this.setIcon( ok ? null : 'alert' );
this.setIconTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
return $.Deferred().resolve( ok ).promise();
+ },
+ createItemWidget: function ( data, label ) {
+ var item = OO.ui.CapsuleMultiselectWidget.prototype.createItemWidget.call( this, data, label );
+ if ( this.paramInfo.deprecatedvalues &&
+ this.paramInfo.deprecatedvalues.indexOf( data ) >= 0
+ ) {
+ item.$element.addClass( 'apihelp-deprecated-value' );
+ }
+ return item;
}
},
}
items = $.map( pi.type, function ( v ) {
- return new OO.ui.MenuOptionWidget( { data: String( v ), label: String( v ) } );
+ var config = {
+ data: String( v ),
+ label: String( v ),
+ classes: []
+ };
+ if ( pi.deprecatedvalues && pi.deprecatedvalues.indexOf( v ) >= 0 ) {
+ config.classes.push( 'apihelp-deprecated-value' );
+ }
+ return new OO.ui.MenuOptionWidget( config );
} );
if ( Util.apiBool( pi.multi ) ) {
if ( pi.allspecifier !== undefined ) {
$.extend( widget, WidgetMethods.dropdownWidget );
if ( Util.apiBool( pi.submodules ) ) {
widget.getSubmodules = WidgetMethods.submoduleWidget.single;
- widget.getMenu().on( 'choose', ApiSandbox.updateUI );
+ widget.getMenu().on( 'select', ApiSandbox.updateUI );
+ }
+ if ( pi.deprecatedvalues ) {
+ widget.getMenu().on( 'select', function ( item ) {
+ this.$element.toggleClass(
+ 'apihelp-deprecated-value',
+ pi.deprecatedvalues.indexOf( item.data ) >= 0
+ );
+ }, [], widget );
}
}
menu: { items: [] },
$overlay: $( '#mw-apisandbox-ui' )
} );
- formatDropdown.getMenu().on( 'choose', Util.onFormatDropdownChange );
+ formatDropdown.getMenu().on( 'select', Util.onFormatDropdownChange );
}
menu = formatDropdown.getMenu();
}
} )
.then( null, function ( code, data, result, jqXHR ) {
+ var deferred = $.Deferred();
+
if ( code !== 'http' ) {
// Not really an error, work around mw.Api thinking it is.
- return $.Deferred()
- .resolve( result, jqXHR )
- .promise();
+ deferred.resolve( result, jqXHR );
+ } else {
+ // Just forward it.
+ deferred.reject.apply( deferred, arguments );
}
- return this;
- } )
- .fail( function ( code, data ) {
- var details = 'HTTP error: ' + data.exception;
- $result.empty()
- .append(
- new OO.ui.LabelWidget( {
- label: mw.message( 'apisandbox-results-error', details ).text(),
- classes: [ 'error' ]
- } ).$element
- );
+ return deferred.promise();
} )
- .done( function ( data, jqXHR ) {
+ .then( function ( data, jqXHR ) {
var m, loadTime, button, clear,
ct = jqXHR.getResponseHeader( 'Content-Type' ),
loginSuppressed = jqXHR.getResponseHeader( 'MediaWiki-Login-Suppressed' ) || 'false';
.on( 'click', button.setDisabled, [ true ], button )
.$element.appendTo( $result );
}
+ }, function ( code, data ) {
+ var details = 'HTTP error: ' + data.exception;
+ $result.empty()
+ .append(
+ new OO.ui.LabelWidget( {
+ label: mw.message( 'apisandbox-results-error', details ).text(),
+ classes: [ 'error' ]
+ } ).$element
+ );
} );
} );
},
nooptional: true
} );
button = new OO.ui.ButtonWidget( {
- icon: 'remove',
+ icon: 'trash',
flags: 'destructive'
} );
layout = new OO.ui.ActionFieldLayout(